#include "stdafx.h"
#include "ckRasterBand.h"
#include "ckEnumRasterBand.h"

namespace ck
{
	namespace data
	{
		EnumRasterBand::EnumRasterBand()
		{
			m_iter = m_bands.begin();
		}


		EnumRasterBand::~EnumRasterBand()
		{
			Cleanup();
		}

		void EnumRasterBand::Add(RasterBand* pCase)
		{
			if (pCase)
			{
				m_bands.push_back(pCase);
			}
		}

		void EnumRasterBand::Cleanup()
		{
			std::vector<RasterBand*>::iterator iter;
			for (iter = m_bands.begin(); iter != m_bands.end(); iter++)
			{
				(*iter)->Release();
			}
			m_bands.clear();
		}

		void EnumRasterBand::Reset()
		{
			m_iter = m_bands.begin();
		}

		RasterBand* EnumRasterBand::Next()
		{
			if (m_iter == m_bands.end())
			{
				return NULL;
			}
			return *(m_iter++);
		}

	}
}
